<?php
declare (strict_types = 1);

namespace app\controller;

use app\lib\JWT;
use app\Request;
use app\validate\CheckLogin;
use think\exception\ValidateException;

class Index
{
    /**
     * @return \think\response\View
     * 登陆页面
     */
    public function loginShow(){
//        跳转到登陆页面
        return view('index/login');
    }

    /**
     * @param Request $request
     * @return string|\think\response\Redirect
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     * 登陆方法
     */
    public function login(Request $request){
        try {
//            独立验证器
            validate(CheckLogin::class)->check($request->post('','','remove_xss'));
        }catch (ValidateException $exception){
//            返回错误
            return $exception->getMessage();
        }
//        获取前端传递的数据
        $data=$request->post('','','remove_xss');
//        调用模型层方法进行查询数据
        $res=(new \app\model\User())->checkLogin($data);
//        判断是否登陆成功
        if(!$res){
            return '登陆失败';
        }
//        判断是否有商品id，如果有则代表是从详情页跳转到这的，所以需要再次跳转回去
        if(!session('?goods_id')){
//            记录登陆标识
            session('userInfo',$res->toArray());
            $token=JWT::createjwt($res['id']);
//            跳转到商品列表
            return redirect('goodsList');
        }
//        接收商品id
        $goods_id=session('goods_id');
//        消除session
        session('goods_id',null);
//        跳转到指定详情页面
        return redirect("goodsInfo?id=$goods_id");
    }
}
